Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Вывод одиного данного или как-то так (ZiBoX)
Author Message
ZiBoX
Участник форума



Joined: 12 Sep 2004
Posts: 38
Карма: 0
   поощрить/наказать


PostPosted: Sat May 27, 2006 9:28 pm (написано за 2 секунды)
   Post subject: Вывод одиного данного или как-то так
Reply with quote

Господа, есть проблема.

Пишу онлайн – дневник
Возникла проблема.
На главной странице выводится список

название дневника || автор || последняя запись

есть 2 таблицы
1 таблица (хранятся названия дневников дата и какому пользователю принадлежит)
id user name date

2 таблица(хранятся какому пользователю принадлежит запись, дата, заголовок, текст)
id user date title content

Так вот я не знаю, как сделать так чтобы показывались только последняя запись каждого пользователя и сортировались по дате добавления, т.е. должны выводиться только
Название дневника, автор и когда была сделана последняя запись.

Ой, тяжко.
Back to top
View user's profile Send private message
ZiBoX
Участник форума



Joined: 12 Sep 2004
Posts: 38
Карма: 0
   поощрить/наказать


PostPosted: Sat May 27, 2006 10:46 pm (спустя 1 час 17 минут; написано за 6 секунд)
   Post subject:
Reply with quote

НАверное я не так объяснил.
Допустим есть 15 записей и все они добавлены в разное время
5 из них пренадлежат пользователю 1
2 пользователю 2
8 пользователю 3
у каждого свой дневник

мне нужно вывести имя дневника(только название) затем время последней записи, и так всех пользователей(только имя их дневника и время последней записи)
т.е. должно вывестить из примера
название // автор //последняя запись
Дневник пользователья 1 // пол.1 // 27.01.2006 15:00
Дневник по2 // пол.3 // 27.01.2006 14:53
Дневник3 // пол.2 // 25.01.2006 17:53

Теперь надеюсь будет понятно
Back to top
View user's profile Send private message
Andrey Gurin
Участник форума



Joined: 24 May 2005
Posts: 183
Карма: 20
   поощрить/наказать

Location: Italy

PostPosted: Sat May 27, 2006 11:12 pm (спустя 25 минут; написано за 5 минут 22 секунды)
   Post subject:
Reply with quote

Пользуйтесь JOIN и функицей MAX, получится что-то вроде
Code (SQL): скопировать код в буфер обмена
SELECT users.name, MAX(messages.msg_time) FROM users LEFT JOIN ON messages USING (user_id) GROUP BY user_id
Не совсем понятнa организация данных. Почему сообщение привязано к юзеру, а не к дневнику?
Back to top
View user's profile Send private message
ZiBoX
Участник форума



Joined: 12 Sep 2004
Posts: 38
Карма: 0
   поощрить/наказать


PostPosted: Sun May 28, 2006 2:33 pm (спустя 15 часов 21 минуту; написано за 1 минуту 39 секунд)
   Post subject:
Reply with quote

Andrey Gurin
На не могли бы ли Вы написать запрос на осноме моих таблиц, пожалуйста
Вот структура таблиц
Code (SQL): скопировать код в буфер обмена
--
--
--

CREATE TABLE `diary` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `userid` int(255) NOT NULL DEFAULT '0',
  `name` varchar(255) NOT NULL DEFAULT '',
  `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;

-- --------------------------------------------------------

--
--
--

CREATE TABLE `diary_content` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `userid` int(255) NOT NULL DEFAULT '0',
  `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `title` varchar(255) NOT NULL DEFAULT '',
  `content` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=28 ;

-- --------------------------------------------------------

--
--
--

CREATE TABLE `komrads` (
  `userid` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(30) NOT NULL DEFAULT '',
  `password` varchar(32) NOT NULL DEFAULT '',
  PRIMARY KEY  (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;

-- --------------------------------------------------------
 
Back to top
View user's profile Send private message
Andrey Gurin
Участник форума



Joined: 24 May 2005
Posts: 183
Карма: 20
   поощрить/наказать

Location: Italy

PostPosted: Mon May 29, 2006 1:27 pm (спустя 22 часа 54 минуты; написано за 51 секунду)
   Post subject:
Reply with quote

Так?
Code (SQL): скопировать код в буфер обмена
SELECT komrads.login, diary.name, MAX( diary_content.date )
FROM komrads
LEFT JOIN diary
USING ( userid )
LEFT JOIN diary_content
USING ( userid )
GROUP BY userid
Back to top
View user's profile Send private message
ZiBoX
Участник форума



Joined: 12 Sep 2004
Posts: 38
Карма: 0
   поощрить/наказать


PostPosted: Sat Jun 03, 2006 4:11 pm (спустя 5 дней 2 часа 43 минуты; написано за 20 секунд)
   Post subject:
Reply with quote

Да, спасибо.

Вопрос решен, тему можно закрыть.
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Mon Jun 05, 2006 11:52 am (спустя 1 день 19 часов 41 минуту)
   Post subject:
Reply with quote


М

Тема закрыта.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies. All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML